<?php

/**
 * order actions.
 *
 * @package    ppstool
 * @subpackage order
 * @author     HS Karlsruhe
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class orderActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  
	public function executeOrdercalculation($request)
	 {
	 	$p1n = $this->getUser()->getAttribute('p1n');
	 	$p1n1 = $this->getUser()->getAttribute('p1n1');
	 	$p1n2 = $this->getUser()->getAttribute('p1n2');
	 	$p1n3 = $this->getUser()->getAttribute('p1n3');
	 	
	 	$p2n = $this->getUser()->getAttribute('p2n');
	 	$p2n1 = $this->getUser()->getAttribute('p2n1');
	 	$p2n2 = $this->getUser()->getAttribute('p2n2');
	 	$p2n3 = $this->getUser()->getAttribute('p2n3');
	 	
	 	$p3n = $this->getUser()->getAttribute('p3n');
	 	$p3n1 = $this->getUser()->getAttribute('p3n1');
	 	$p3n2 = $this->getUser()->getAttribute('p3n2');
	 	$p3n3 = $this->getUser()->getAttribute('p3n3');
	 	
	 	$stockamount = $this->getUser()->getAttribute('sa');
	 	$futurestock = $this->getUser()->getAttribute('fis');
	 	
	 	$kaufteile = array();

	 	$kaufteile["21"] = array(	"lieferzeit" => 2.2,
	 							 	"p1" => 1,
	 								"p2" => 0,
	 								"p3" => 0,
	 								"diskont" => 300);
	 	$kaufteile["22"] = array(	"lieferzeit" => 2.1,
	 							 	"p1" => 0,
	 								"p2" => 1,
	 								"p3" => 0,
	 								"diskont" => 300);
	 	$kaufteile["23"] = array(	"lieferzeit" => 1.4,
	 							 	"p1" => 0,
	 								"p2" => 0,
	 								"p3" => 1,
	 								"diskont" => 300);
	 	$kaufteile["24"] = array(	"lieferzeit" => 3.5,
	 							 	"p1" => 7,
	 								"p2" => 7,
	 								"p3" => 7,
	 								"diskont" => 6100);
	 	$kaufteile["25"] = array(	"lieferzeit" => 1.1,
	 							 	"p1" => 4,
	 								"p2" => 4,
	 								"p3" => 4,
	 								"diskont" => 3600);
	 	$kaufteile["27"] = array(	"lieferzeit" => 1.1,
	 							 	"p1" => 2,
	 								"p2" => 2,
	 								"p3" => 2,
	 								"diskont" => 1800);
	 	$kaufteile["28"] = array(	"lieferzeit" => 2.1,
	 							 	"p1" => 4,
	 								"p2" => 5,
	 								"p3" => 6,
	 								"diskont" => 4500);
	 	$kaufteile["32"] = array(	"lieferzeit" => 2.6,
	 							 	"p1" => 3,
	 								"p2" => 3,
	 								"p3" => 3,
	 								"diskont" => 2700);
	 	$kaufteile["33"] = array(	"lieferzeit" => 2.4,
	 							 	"p1" => 0,
	 								"p2" => 0,
	 								"p3" => 2,
	 								"diskont" => 900);
	 	$kaufteile["34"] = array(	"lieferzeit" => 1.9,
	 							 	"p1" => 0,
	 								"p2" => 0,
	 								"p3" => 72,
	 								"diskont" => 22000);
	 	$kaufteile["35"] = array(	"lieferzeit" => 2.6,
	 							 	"p1" => 4,
	 								"p2" => 4,
	 								"p3" => 4,
	 								"diskont" => 3600);
	 	$kaufteile["36"] = array(	"lieferzeit" => 1.3,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 900);
	 	$kaufteile["37"] = array(	"lieferzeit" => 1.8,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 900);
	 	$kaufteile["38"] = array(	"lieferzeit" => 2.1,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 300);
	 	$kaufteile["39"] = array(	"lieferzeit" => 1.8,
	 							 	"p1" => 2,
	 								"p2" => 2,
	 								"p3" => 2,
	 								"diskont" => 1800);
	 	$kaufteile["40"] = array(	"lieferzeit" => 1.9,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 900);
	 	$kaufteile["41"] = array(	"lieferzeit" => 1.1,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 900);
	 	$kaufteile["42"] = array(	"lieferzeit" => 1.5,
	 							 	"p1" => 2,
	 								"p2" => 2,
	 								"p3" => 2,
	 								"diskont" => 1800);
	 	$kaufteile["43"] = array(	"lieferzeit" => 2.5,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 2700);
	 	$kaufteile["44"] = array(	"lieferzeit" => 1.2,
	 							 	"p1" => 3,
	 								"p2" => 3,
	 								"p3" => 3,
	 								"diskont" => 900);
	 	$kaufteile["45"] = array(	"lieferzeit" => 2.0,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 900);
	 	$kaufteile["46"] = array(	"lieferzeit" => 1.2,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 900);
	 	$kaufteile["47"] = array(	"lieferzeit" => 1.2,
	 							 	"p1" => 1,
	 								"p2" => 1,
	 								"p3" => 1,
	 								"diskont" => 900);
	 	$kaufteile["48"] = array(	"lieferzeit" => 2.1,
	 							 	"p1" => 2,
	 								"p2" => 2,
	 								"p3" => 2,
	 								"diskont" => 1800);
	 	$kaufteile["52"] = array(	"lieferzeit" => 2.0,
	 							 	"p1" => 2,
	 								"p2" => 0,
	 								"p3" => 0,
	 								"diskont" => 600);
	 	$kaufteile["53"] = array(	"lieferzeit" => 1.8,
	 							 	"p1" => 72,
	 								"p2" => 0,
	 								"p3" => 0,
	 								"diskont" => 22000);
	 	$kaufteile["57"] = array(	"lieferzeit" => 2.0,
	 							 	"p1" => 0,
	 								"p2" => 2,
	 								"p3" => 0,
	 								"diskont" => 600);
	 	$kaufteile["58"] = array(	"lieferzeit" => 2.1,
	 							 	"p1" => 0,
	 								"p2" => 72,
	 								"p3" => 0,
	 								"diskont" => 22000);
	 	$kaufteile["59"] = array(	"lieferzeit" => 0.9,
	 							 	"p1" => 2,
	 								"p2" => 2,
	 								"p3" => 2,
	 								"diskont" => 1800);	 	

	 	
	 	//Matrixmultipilkation
	 	$bruttobedarf = array();
	 	$orders = array();
	 	for ($i=21; $i<60;$i++)
	 	{
	 		if($i == 26 || $i == 29 || $i == 30 || $i == 31 || $i == 49 || $i == 50 || $i == 51 || $i == 54 ||$i == 55 || $i == 56)
	 		{	 				 		
	 			continue;	 			 
	 		}
			$bruttobedarf[$i] = array(	"pern" => $p1n* $kaufteile[$i]["p1"]  + $p2n* $kaufteile[$i]["p2"] +$p3n* $kaufteile[$i]["p3"],
			 							"pern1" => $p1n1* $kaufteile[$i]["p1"]  + $p2n1* $kaufteile[$i]["p2"] +$p3n1* $kaufteile[$i]["p3"],
			 							"pern2" => $p1n2* $kaufteile[$i]["p1"]  + $p2n2* $kaufteile[$i]["p2"] +$p3n2* $kaufteile[$i]["p3"],
			 							"pern3" => $p1n3* $kaufteile[$i]["p1"]  + $p2n3* $kaufteile[$i]["p2"] +$p3n3* $kaufteile[$i]["p3"],
										"lagerbestand" => $stockamount[$i]);
			
			//Bestand + zuk�nftige Bestellungen
			if (isset($futurestock[$i]))
			{
				$bruttobedarf[$i]["lagerbestand"] += $futurestock[$i];
			}

			//Reichweite ermitteln
	 		if (($bruttobedarf[$i]["lagerbestand"] - $bruttobedarf[$i]["pern"])>=0)
			{
				if (($bruttobedarf[$i]["lagerbestand"] - ($bruttobedarf[$i]["pern"]+$bruttobedarf[$i]["pern1"]))>=0)
				{
					if (($bruttobedarf[$i]["lagerbestand"] - ($bruttobedarf[$i]["pern"]+$bruttobedarf[$i]["pern1"]+$bruttobedarf[$i]["pern2"]))>=0)
					{
						if (($bruttobedarf[$i]["lagerbestand"] - ($bruttobedarf[$i]["pern"]+$bruttobedarf[$i]["pern1"]+$bruttobedarf[$i]["pern2"]+$bruttobedarf[$i]["pern3"]))>=0)
						{
							$bruttobedarf[$i]["reichweite"] = 4;
						}
						else 
						{
							$bruttobedarf[$i]["reichweite"] = 3;
						}
					}
					else 
					{
						$bruttobedarf[$i]["reichweite"] = 2;
					}
				}
				else 
				{
					$bruttobedarf[$i]["reichweite"] = 1;
				}
			}
			else 
			{
				$bruttobedarf[$i]["reichweite"] = 0;
			}
			
			//Bestellart und Bestellmenge(Diskontmenge)
			if($kaufteile[$i]["lieferzeit"] > $bruttobedarf[$i]["reichweite"])
			{
				$orders[$i] = array ( 	"amount" => $kaufteile[$i]["diskont"]*2,
										"modus" => 4);
			}
			elseif ( (($bruttobedarf[$i]["reichweite"] - 1) <= $kaufteile[$i]["lieferzeit"]) &&  ($kaufteile[$i]["lieferzeit"] <= $bruttobedarf[$i]["reichweite"]))
			{
				$orders[$i] = array ( 	"amount" => $kaufteile[$i]["diskont"],
										"modus" => 5);
			}			
	 	}

	 	//echo count($orders)."<br>";
	 	//print_r($orders);
	 	//echo "<br>";
	 	//print_r($bruttobedarf);
			
		$this->getUser()->setAttribute('ol',$orders);
		//$this->redirect('overview/index');
	 }
}
